package cn.iocoder.yudao.module.vote.controller.admin.voteHead.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 投票头分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class VoteHeadPageReqVO extends PageParam {

    @Schema(description = "活动名称", example = "芋艿")
    private String name;

    @Schema(description = "活动编号")
    private String actNo;

    @Schema(description = "活动封面图key")
    private String actCoverKey;

    @Schema(description = "活动视频key")
    private String actVideoKeys;

    @Schema(description = "活动轮播图keys")
    private String actPicKeys;

    @Schema(description = "简介")
    private String subject;

    @Schema(description = "描述", example = "随便")
    private String description;

    @Schema(description = "排序")
    private Integer sort;

    @Schema(description = "状态", example = "1")
    private String status;

    @Schema(description = "投票开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] startTime;

    @Schema(description = "投票结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] endTime;

    @Schema(description = "投票规则（单选投票、多选投票）")
    private String voteRule;

    @Schema(description = "投票次数（总、每天）")
    private String voteRange;

    @Schema(description = "投票次数（ /次）")
    private Integer voteRangeItem;

    @Schema(description = "发起人id", example = "3843")
    private Long userId;

    @Schema(description = "票数查看规则（投票前可看票数、投票后可看票数、结束后可看票数、仅发起人可看票数）")
    private String resultRule;

    @Schema(description = "选项的类型（文字投票、图片投票、视频投票）", example = "1")
    private String voteType;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}